package com.util;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class DateUtil {
	private static SimpleDateFormat sf  =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	
	static GregorianCalendar gc =new GregorianCalendar();
	/**
	 * 时间加减
	 * @param field 参数表示年,月.日等.
	 * 1:表示年.
	 * 2:表示月.
	 * 3:表示周.
	 * 5:表示日.
	 * 11:表示时.
	 * 12:表示分.
	 * 13:表示秒.
	 * 可以精确的秒.
	 * @param amount 参数表示要加减的数量.-1表示减一,1标示加一
	 * @param date 原始时间.
	 * @return 计算后的时间字符串.
	 */
	public static Date getDate(Date date,int field,int amount){
		gc.setTime(date);
		gc.add(field,amount);
		gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE),
				gc.get(Calendar.HOUR_OF_DAY),gc.get(Calendar.MINUTE),gc.get(Calendar.SECOND));
		return gc.getTime();
	}
	
	/**
	 * 判断日期是否同一天
	 * @param date1
	 * @param date2
	 * @return
	 */
	public static boolean isSameDay(Date date1, Date date2){
		boolean flg = false;
		SimpleDateFormat sf  =new SimpleDateFormat("yyyy-MM-dd");
		String format1 = sf.format(date1);
		String format2 = sf.format(date2);
		if(format1.equals(format2)){
			flg = true;
		}
		return flg;
	}
	
	/**
	 * 时间字符格式化
	 * @param format
	 * @param date
	 * @return
	 */
	public  static String formatDate(String format,Date date){
		String format2="";
		if(format!=null&&!format.equals("")){
			SimpleDateFormat sf  =new SimpleDateFormat(format);
			format2 = sf.format(date);
		}else{
			sf  =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			format2 = sf.format(date);
		}
		return format2;
	}
	
}
